Numerical Methods in Engineering

Core assignments exploring stability, convergence, and approximation techniques.


Finite Difference and LU Decomposition

This assignment implemented the Doolittle LU decomposition algorithm to solve 1D and 2D boundary-value problems derived from finite difference approximations. The focus was on verifying correctness against MATLAB’s lu solver and analyzing computational scaling with system size. The project included temperature distribution plots and time-complexity analysis of the solver.


Implicit Euler and Newton–Raphson Integration

This work explored nonlinear time integration of the Lotka–Volterra predator–prey equations using the implicit Euler method. A Newton–Raphson iteration scheme was implemented to handle nonlinearity in the backward Euler formulation. The analysis included phase-space trajectories, global error comparisons, and a discussion of the trade-off between accuracy and stability.


Finite Element Method (FEM)

This assignment involved the implementation of the 1D Galerkin Finite Element Method to solve a steady-state diffusion problem. Element stiffness matrices were assembled using 3-point Gaussian quadrature, and the effect of mesh refinement on accuracy was examined. The results showed excellent agreement with analytical solutions, validating the weak formulation and numerical integration.


Numerical Methods for PDEs

Finite difference and time-marching schemes for diffusion and wave equations.

Heat Equation — Explicit and Implicit Schemes

This assignment implemented finite-difference methods for solving the 1-D heat equation \( u_t = \alpha u_{xx} \) using both explicit (Forward Euler) and implicit (Crank–Nicolson) time-marching schemes. MATLAB code was written to compare stability and accuracy under varying spatial and temporal step sizes. The report includes analytical vs numerical comparisons, stability analysis using the CFL condition, and surface plots of \( u(x,t) \) evolution.